var AipFaceClient = require("baidu-aip-sdk").face;
const fs = require('fs')
const Read = require('./read')
const data = require('./data.json')

// 设置APPID/AK/SK
var APP_ID = "34719181";
var API_KEY = "jnCcYa7QUc6jPFyymt8Gi7yo";
var SECRET_KEY = "twusGWtv7t20ITU4tOpi5UMdGrmAmqV0";

// 新建一个对象，建议只保存一个对象调用服务接口
var client = new AipFaceClient(APP_ID, API_KEY, SECRET_KEY);

// 图片。data:image/jpeg;base64,
var image = Read.read_('1', data)

// 图片类型：BASE64   URL
var imageType = "BASE64";

// 用户组id。  admin_1   user   2954734476
const groupId = 'admin_1'

// 用户id
const userId_1 = "song";
const userId_2 = "wen";
const userId_3 = "jun";

// 创建管理员用户组
exports.createGroup = function () {
    // 调用创建用户组
    client.groupAdd(groupId).then(function (result) {
        console.log('用户组：', JSON.stringify(result));
    }).catch(function (err) {
        // 如果发生网络错误
        console.log(err);
    });
}

// 查询用户组
exports.selectGroup = function () {
    // 调用组列表查询
    client.getGrouplist().then(function (result) {
        console.log('查询用户组', JSON.stringify(result));
    }).catch(function (err) {
        // 如果发生网络错误
        console.log(err);
    });
}

// 人脸检测
exports.face_ = function () {
    console.log('aa', APP_ID);
    // 调用人脸检测
    client.detect(image, imageType).then(function (result) {
        console.log('result', JSON.stringify(result));
        // console.log('result',result);
    }).catch(function (err) {
        // 如果发生网络错误
        console.log(err);
    });

    // 如果有可选参数
    // var options = {};
    // options["face_field"] = "age";
    // options["max_face_num"] = "2";
    // options["face_type"] = "LIVE";
    // options["liveness_control"] = "LOW";

    // // 带参数调用人脸检测
    // client.detect(image, imageType, options).then(function (result) {
    //     console.log(JSON.stringify(result));
    // }).catch(function (err) {
    //     // 如果发生网络错误
    //     console.log(err);
    // });;
}

// 人脸注册
exports.face_register = function () {
    // 如果有可选参数
    var options = {};
    options["action_type"] = "REPLACE";

    // 带参数调用人脸注册
    client.addUser(image, imageType, groupId, userId_1, options).then(function (result) {
        console.log('人脸注册', JSON.stringify(result));
    }).catch(function (err) {
        // 如果发生网络错误
        console.log(err);
    });
}

// 查询用户信息  
exports.face_search = function () {
    client.getUser(userId_3, groupId).then(function (result) {
        console.log('查询用户信息', JSON.stringify(result));
    }).catch(function (err) {
        // 如果发生网络错误
        console.log(err);
    });
}

// 查询指定用户组中的用户列表
exports.face_userList = function () {
    // 调用获取用户列表
    client.getGroupUsers(groupId).then(function (result) {
        console.log('指定用户组的用户列表', JSON.stringify(result));
    }).catch(function (err) {
        // 如果发生网络错误
        console.log(err);
    });
}

// 人脸对比
exports.face_contrast = function (url = undefined) {
    // let im = fs.readFileSync(`./image/图1.jpg`, 'binary');
    // im = Buffer.from(im, 'binary').toString('base64');
    // console.log('转码后', im);
    // console.log('url',Read.read_('1', data));
    // return url    && im

    /* 去掉图片base64的头部 */
    client.match([{
        image: url ,
        image_type: 'BASE64'
    }, {
        image: Read.read_('1', data),
        image_type: 'BASE64'
    }]).then(function (result) {
        console.log('人脸对比: ' + JSON.stringify(result));
    });
}

// 人脸更新
exports.face_updata = function (url = undefined) {
    client.updateUser(image, imageType, groupId, userId_3).then(function(result) {
        console.log('人脸更新',JSON.stringify(result));
    }).catch(function(err) {
        // 如果发生网络错误
        console.log(err);
    });
}


// 删除用户
exports.delUser = function () {    
    // 调用删除用户
    client.deleteUser(groupId, userId_3).then(function(result) {
        console.log('删除用户',JSON.stringify(result));
    }).catch(function(err) {
        // 如果发生网络错误
        console.log(err);
    });
}
